//
//  MYSingleton.m
//  JQLive
//
//  Created by Bruce on 2020/3/24.
//  Copyright © 2020 mlqk. All rights reserved.
//

#import "MYSingleton.h"
//#import "JVShopcartBrandModel.h"
#import "MYSystemAlertView.h"
//#import "MYVerificationCodeLoginOneVC.h"

@implementation MYSingleton

+ (instancetype)defaultSingleton
{
    static MYSingleton *singleton;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        singleton = [[self alloc] init];
        singleton.currentColor = @"#f0250f";
    });
    return singleton;
}

//- (CGFloat)loadPriceWithArray:(NSArray *)arrray
//                         type:(NSInteger)type
//               isFromShopCart:(BOOL)isFromShopCart
//{
//    CGFloat totalPrice = 0;
//
//    for (JVShopcartBrandModel *brandModel in arrray)
//    {
//        if (isFromShopCart == YES)
//        {
//            NSArray *boj = brandModel.selectedArray;
//
//            if ([MYSingleton defaultSingleton].isFirstOrder)
//            {
//                for (MYProdectModel *productModel in boj)
//                {
//                    if (productModel.specsList.count > 0)
//                    {
//                        if (productModel.isFirstTimeGoods == 2)
//                        {
//                            totalPrice += productModel.specsList.firstObject.firstTimePrice * productModel.quantity.integerValue;
//                        }
//                        else
//                        {
//                            if (productModel.specsList.firstObject.promotionalPrice > 0)
//                            {
//                                totalPrice += productModel.specsList.firstObject.promotionalPrice * productModel.quantity.integerValue;
//                            }
//                            else
//                            {
//                                totalPrice += productModel.specsList.firstObject.shopPrice * productModel.quantity.integerValue;
//                            }
//                        }
//                    }
//                    else
//                    {
//                        if (productModel.isFirstTimeGoods == 2)
//                        {
//                            totalPrice += productModel.firstTimePrice * productModel.quantity.integerValue;
//                        }
//                        else
//                        {
//                            totalPrice += productModel.goodsPrice * productModel.quantity.integerValue;
//                        }
//                    }
//                }
//            }
//            else
//            {
//                for (MYProdectModel *productModel in boj)
//                {
//                    if (productModel.specsList.count > 0)
//                    {
//                        if (productModel.specsList.firstObject.promotionalPrice > 0)
//                        {
//                            totalPrice += productModel.specsList.firstObject.promotionalPrice * productModel.quantity.integerValue;
//                        }
//                        else
//                        {
//                            totalPrice += productModel.specsList.firstObject.shopPrice * productModel.quantity.integerValue;
//                        }
//                    }
//                    else
//                    {
//                        totalPrice += productModel.goodsPrice * productModel.quantity.integerValue;
//                    }
//                }
//            }
//        }
//        else
//        {
//            NSArray *boj = brandModel.shoppingCarts;
//
//            for (MYProdectModel *productModel in boj)
//            {
//                if (productModel.specsList.count > 0)
//                {
//                    if ([MYSingleton defaultSingleton].isFirstOrder && type == MYProductDetailTypeFirstOrder)
//                    {
//                        totalPrice += productModel.specsList.firstObject.firstTimePrice * productModel.quantity.integerValue;
//                    }
//                    else if (type == MYProductDetailTypeSpecialOffer)
//                    {
//                        if (productModel.specsList.firstObject.specialOfferPrice > 0)
//                        {
//                            totalPrice += productModel.specsList.firstObject.specialOfferPrice * productModel.quantity.integerValue;
//                        }
//                        else
//                        {
//                            if (productModel.specsList.firstObject.promotionalPrice > 0)
//                            {
//                                totalPrice += productModel.specsList.firstObject.promotionalPrice * productModel.quantity.integerValue;
//                            }
//                            else
//                            {
//                                totalPrice += productModel.specsList.firstObject.shopPrice * productModel.quantity.integerValue;
//                            }
//                        }
//                    }
//                    else
//                    {
//                        if (productModel.specsList.firstObject.promotionalPrice > 0)
//                        {
//                            totalPrice += productModel.specsList.firstObject.promotionalPrice * productModel.quantity.integerValue;
//                        }
//                        else
//                        {
//                            totalPrice += productModel.specsList.firstObject.shopPrice * productModel.quantity.integerValue;
//                        }
//                    }
//                }
//                else
//                {
//                    if ([MYSingleton defaultSingleton].isFirstOrder && type == MYProductDetailTypeFirstOrder)
//                    {
//                        totalPrice += productModel.firstTimePrice * productModel.quantity.integerValue;
//                    }
//                    else if (type == MYProductDetailTypeSpecialOffer)
//                    {
//                        totalPrice += productModel.specialOfferPrice * productModel.quantity.integerValue;
//                    }
//                    else
//                    {
//                        totalPrice += productModel.goodsPrice * productModel.quantity.integerValue;
//                    }
//                }
//            }
//        }
//    }
//
//    return totalPrice;
//
//    //        NSArray *boj;
//    //
//    //        if (my_fromShopCart == YES)
//    //        {
//    //            boj = brandModel.selectedArray;
//    //        }
//    //        else
//    //        {
//    //            boj = brandModel.shoppingCarts;
//    //        }
//    //
//    //        for (MYProdectModel *productModel in boj)
//    //        {
//    //            NSDictionary *dict;
//    //            if (productModel.specsList.count > 0)
//    //            {
//    //                MYSpecsListModel *spModel = productModel.specsList.firstObject;
//    //
//    //                if (productModel.isFirstTimeGoods == 2)
//    //                {
//    //                    if ((my_fromShopCart == YES || self.productDetailType == MYProductDetailTypeFirstOrder) && [MYSingleton defaultSingleton].isFirstOrder)
//    //                    {
//    //                        totalPrice += productModel.specsList.firstObject.firstTimePrice * productModel.quantity.integerValue;
//    //                    }
//    //                    else
//    //                    {
//    //                        if (productModel.specsList.firstObject.promotionalPrice > 0)
//    //                        {
//    //                            totalPrice += productModel.specsList.firstObject.promotionalPrice * productModel.quantity.integerValue;
//    //                        }
//    //                        else
//    //                        {
//    //                            totalPrice += productModel.specsList.firstObject.shopPrice * productModel.quantity.integerValue;
//    //                        }
//    //                    }
//    //                }
//    //                else
//    //                {
//    //                    if (self.productDetailType == MYProductDetailTypeSpecialOffer || self.productDetailType == MYProductDetailTypeFlashSale)
//    //                    {
//    //                        if (productModel.specsList.firstObject.specialOfferPrice > 0)
//    //                        {
//    //                            if (productModel.specsList.firstObject.specialOfferPrice > 0)
//    //                            {
//    //                                totalPrice += productModel.specsList.firstObject.specialOfferPrice * productModel.quantity.integerValue;
//    //                            }
//    //                            else
//    //                            {
//    //                                totalPrice += productModel.specsList.firstObject.shopPrice * productModel.quantity.integerValue;
//    //                            }
//    //                        }
//    //                        else
//    //                        {
//    //                            if (productModel.specsList.firstObject.promotionalPrice > 0)
//    //                            {
//    //                                totalPrice += productModel.specsList.firstObject.promotionalPrice * productModel.quantity.integerValue;
//    //                            }
//    //                            else
//    //                            {
//    //                                totalPrice += productModel.specsList.firstObject.shopPrice * productModel.quantity.integerValue;
//    //                            }
//    //                        }
//    //                    }
//    //                    else
//    //                    {
//    //                        if (productModel.specsList.firstObject.promotionalPrice > 0)
//    //                        {
//    //                            totalPrice += productModel.specsList.firstObject.promotionalPrice * productModel.quantity.integerValue;
//    //                        }
//    //                        else
//    //                        {
//    //                            totalPrice += productModel.specsList.firstObject.shopPrice * productModel.quantity.integerValue;
//    //                        }
//    //                    }
//    //                }
//    //
//    //                dict = @{
//    //                    @"goodsId":[NSString stringWithFormat:@"%ld",productModel.goodsId],
//    //                    @"specsId":[NSString stringWithFormat:@"%ld",spModel.specsId],
//    //                    @"quantity":[NSString stringWithFormat:@"%ld",productModel.quantity.integerValue],
//    //                };
//    //
//    //                [self.dataArray addObject:dict];
//    //            }
//    //            else
//    //            {
//    //                if (productModel.isFirstTimeGoods == 2)
//    //                {
//    //                    if ((my_fromShopCart == YES || self.productDetailType == MYProductDetailTypeFirstOrder) && [MYSingleton defaultSingleton].isFirstOrder)
//    //                    {
//    //                        totalPrice += productModel.firstTimePrice * productModel.quantity.integerValue;
//    //                    }
//    //                    else
//    //                    {
//    //                        totalPrice += productModel.goodsPrice * productModel.quantity.integerValue;
//    //                    }
//    //                }
//    //                else
//    //                {
//    //                    totalPrice += productModel.goodsPrice * productModel.quantity.integerValue;
//    //                }
//    //
//    //                dict = @{
//    //                    @"goodsId":[NSString stringWithFormat:@"%ld",productModel.goodsId],
//    //                    @"quantity":[NSString stringWithFormat:@"%ld",productModel.quantity.integerValue],
//    //                };
//    //
//    //                [self.dataArray addObject:dict];
//    //            }
//    //
//    //            my_freight += productModel.goodsFreight;
//    //        }
//}


//isFromMe:是否由我发起 myProfile：我的个人资料 otherProfile：聊天对象的个人资料 chatType：聊天类型（MYChatTypeSingle：单聊（10000） MYChatTypeGroup：群聊（10001）） roomId：房间ID
- (void)showAudioCallWithMyInfor:(TIMUserProfile *)myProfile
                           other:(TIMUserProfile *)otherProfile
                        chatType:(NSInteger)chatType
                          roomId:(NSString *)roomId
                        isFromMe:(BOOL)isFromMe
{
//    TRTCParams *param = [[TRTCParams alloc] init];
//    param.userId = safeString([MYAccountManager sharedManager].memberId);
//    param.roomId = (UInt32)roomId.integerValue;
//    param.sdkAppId = _SDKAppID;
//    param.userSig = [GenerateTestUserSig genTestUserSig:safeString([MYAccountManager sharedManager].memberId)];
//    param.privateMapKey = @"";
//    param.role = TRTCRoleAnchor;
//    
//
//    TRTCCloud *trtc = [TRTCCloud sharedInstance];
//    //自动接收音频数据，不接收视频数据
//    [trtc setDefaultStreamRecvMode:YES video:NO];


}

- (void)commonToPushVCWithUrl:(NSString *)url
{
    
}

- (BOOL)checkLogin
{
    if ([MYAccountManager sharedManager].accountModel)
    {
        return YES;
    }
    else
    {
        MY_WEAK;
        MYSystemAlertView *v = [[MYSystemAlertView alloc] init];
        v.my_title = @"此功能需要登录才能使用";
        v.my_rightButtonTitle = @"去登录";
        v.my_rightButtonTextColor = MY_ColourMatchingSpecifications_Theme1;
        [v showWithCompletion:^(MYSystemAlertView * _Nonnull vc) {
            
//            MYVerificationCodeLoginOneVC *my_vc = [[MYVerificationCodeLoginOneVC alloc] init];
//            UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:my_vc];
//            nav.modalPresentationStyle = UIModalPresentationFullScreen;
//            [[weakSelf topViewController] presentViewController:nav animated:YES completion:nil];
        }];
        
        return NO;
    }
}

#pragma mark -

- (UIViewController *)topViewController
{
    UIViewController *resultVC;
    resultVC = [self _topViewController:[[UIApplication sharedApplication].keyWindow rootViewController]];
    while (resultVC.presentedViewController)
    {
        resultVC = [self _topViewController:resultVC.presentedViewController];
    }
    return resultVC;
}

- (UIViewController *)_topViewController:(UIViewController *)vc
{
    if ([vc isKindOfClass:[UINavigationController class]])
    {
        return [self _topViewController:[(UINavigationController *)vc topViewController]];
    }
    else if ([vc isKindOfClass:[UITabBarController class]])
    {
        return [self _topViewController:[(UITabBarController *)vc selectedViewController]];
    }
    else
    {
        return vc;
    }
    return nil;
}

@end
